iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 22
0
自我挑戰組

前端成長日記系列 第 22

前端可以稍懂的Database

  • 分享至 

  • xImage
  •  

昨天簡單的設計了一個 ERM 之後,我們來試試看建立資料庫(Database)吧~~

資料庫可以切割 schema, 每個專案或者環境取用不同的 schema,有點像是資料夾的概念。schema 裡面有資料表,每一個 ERM 的實體對應到一張資料表(可以想像成 excel ),每個屬性對應到欄位(column),屬性值是表格內真正存放的內容(cell),一筆筆資料則是 row

https://ithelp.ithome.com.tw/upload/images/20181106/20109592Ek902wmg0Q.jpg

建立資料表、屬性和定義型別

CREATE TABLE `MEMBER` (
  `ID` bigint(20) NOT NULL auto_increment,
  `Email` varchar(128) NOT NULL,
  `Password` varchar(128) NOT NULL,
  PRIMARY KEY  (`ID`)
)

(密碼會經過雜亂處理才存入)

建立資料表之間的關聯

Primary Key(主鍵,簡稱 pk):不可重覆的值

這邊假設為 MEMBER 資料表建立 pk

ALTER TABLE MEMBER ADD PRIMARY KEY (ID);

Foreign Key(外來鍵,簡稱 fk):兩個有關係的表格,取另外一張表格的 pk 為自己的 pk,這樣的情況就稱為 fk

這邊假設要為「訂單明細」(DETAIL)加入「訂單」(ORDER)這個外來鍵,

ALTER TABLE DETAIL
ADD FOREIGN KEY (order_detail_ID) REFERENCES ORDER (order_ID);

無盡的 CRUD~

Create:寫入一筆新資料,例如有新會員註冊
Read:讀出資料,例如查看歷史訂單時叫出訂單資料
Update:更新資料,例如有會員更新資料
Delete:刪除資料,例如刪除帳號、文章等等。但在一些情況下,我們不會真正把資料刪掉,而是做一個 active flag,例如商品下架,我們就把 active status 改成 false,而不是把商品刪掉。

附註:我們可以用 SQL 執行以上動作,也可以使用更方便的圖形化介面。

至於後端語言怎麼與資料庫連線,以下是 PHP 的語法:

<?php
$dsn = "mysql:host=localhost;port=3306;dbname=fa;charset=utf8";
$user = "root";
$psw = "root";
$options = array(PDO::ATTR_ERRMODE=>PDO::ERRMODE_EXCEPTION);
$pdo = new PDO( $dsn, $user, $psw, $options);
?>

1.設定帳號密碼 "root"、"root"
2.localhost、port 與 schema
3.設定編碼 "utf-8"
這樣就可以 new 出一個 PDO 物件去操作資料庫。

今天先這樣囉,明天講 CRUD 的語法囉~~


上一篇
前端可以稍懂的ERM
下一篇
前端可以稍懂的SQL
系列文
前端成長日記30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言